if (typeof(App.FileDlgFolderEdit) == "undefined") {
    //=============================
    // ダイアログクラス
    //=============================
    App.FileDlgFolderEdit = function(config){
        // スーパークラスコンストラクタ呼び出し
        App.FileDlgFolderEdit.superclass.constructor.call(this, config);
    };
    // App.ModalDialogを継承
    Ext.extend(App.FileDlgFolderEdit, App.ModalDialog, {
        container: "file_dlg_folder_edit", // コンテナエレメントのID（オーバーライド）
        width: 300, // ダイアログの幅（オーバーライド）
        height: 'auto', // ダイアログの高さ（オーバーライド）

		project_id : null,
		parent_node : null,
		folder_id : null,
		fname : null,

        /*==================================================
         * 関数名：fncCreateDialog
         * 概　要：コンテナエレメントに対して、ダイアログオブジェクトを生成する
         *       ：（初期表示時に呼び出される）
         * 引　数：なし
         * 戻り値：なし
         ==================================================*/
        fncCreateDialog: function(){
            //-----------------------------
            // スーパークラスの処理を実行
            //-----------------------------
            App.FileDlgFolderEdit.superclass.fncCreateDialog.call(this);

            // ページレンダリング
            this.fncRender();
            // 各イベント設定
            this.fncSetEvent();
        },

        /*==================================================
         * 関数名：fncRender
         * 概　要：ページをレンダリングする
         * 引　数：なし
         * 戻り値：なし
         ==================================================*/
        fncRender: function(){
        },
        
        /*==================================================
         * 関数名：fncSetEvent
         * 概　要：当該ページのイベントハンドラを設定する
         * 引　数：なし
         * 戻り値：なし
         ==================================================*/
        fncSetEvent: function(){
		    // 保存ボタンクリックイベント設定
			elm = Ext.get('dlg_dir_edit_save') ;
			elm.on('click', this.onSave, this, true) ;
		    // 閉じるボタンクリックイベント設定
			elm = Ext.get('dlg_dir_edit_close') ;
			elm.on('click', this.onClose, this, true) ;
        },

	
    /*
     * 関数名：onClose
     * 概　要：閉じるボタンクリックイベント
     *         ダイアログを閉じる。
     * 引　数：なし
     * 戻り値：なし
     */
	onClose : function(){

			this.dialog.hide() ;
			this.fncExecCallback("on_close") ;

	},
	
    /*
     * 関数名：fncReset
     * 概　要：ダイアログ内容をリセットする
     * 引　数：なし
     * 戻り値：なし
     */
    fncReset: function()
    {
				// ダイアログに入力されている値のクリア
	      var elm = Ext.get('dlg_dir_edit_form') ;
	      elm.dom.reset() ;	        
        if (this.fname) {
        	var cmp = Ext.getCmp('dlg_dir_edit_dir_name');
        	cmp.setValue(this.fname);
        }
    },

        /*==================================================
         * 関数名：onDocLoaded
         * 概　要：ドキュメントロードイベントハンドラ
         * 引　数：なし
         * 戻り値：なし
         ==================================================*/
        onDocLoaded: function(eventObject, target){
            //-----------------------------
            // スーパークラスの処理を実行
            //-----------------------------
            App.FileDlgFolderEdit.superclass.onDocLoaded.call(this, eventObject, target);
            
        },

    /*
     * 関数名：onSave
     * 概　要：保存ボタンクリックイベント。
     *         フォームの内容をAjax経由で登録要求する。
     * 引　数：なし
     * 戻り値：なし
     */
	onSave : function(){
        // 確認メッセージ表示
        var ret = confirm( app_localized_message("confirm", "create_dir_confirm") ) ;
        if( !ret ) return false ;

		var url;
		if (!this.fname) {
			url = url_for("/projectfile/create_dir");
		} else {
			url = url_for("/projectfile/folder_rename");
		}

		// 非同期リクエスト
		var options =
		{
			url: url,
			form: 'dlg_dir_edit_form',
			params: {folder_id: this.folder_id},
			success: this.onSaveSuccess ,
			failure: this.onSaveFail,
			scope: this,
			method :'POST'
		} ;
		Ext.Ajax.request(options) ;
	},
	
	onSaveSuccess : function(response, options){
		var responseobj = Ext.util.JSON.decode(response.responseText) ;

        var success = responseobj.success ;
        var message = responseobj.message ;
        if( success ){
			this.dialog.hide() ;
			this.fncExecCallback("on_save") ;
        }
        else{
            alert(message) ;
        }

	},

	onSaveFail : function(response, options){
		var responseobj = Ext.util.JSON.decode(response.responseText) ;

		var message = responseobj.message ;
		alert(message);
	},

        /*==================================================
         * 関数名：onBeforeShow
         * 概　要：ダイアログ表示前イベントハンドラ。
         *       ：必要なデータをロードする。
         * 引　数：dlg                   Ext.BasicDialog    ダイアログオブジェクト
         * 戻り値：なし
         ==================================================*/
        onBeforeShow : function( dlg ){
	        Ext.get('dlg_dir_edit_project_id').dom.value = this.project_id ;
	        Ext.get('dlg_dir_edit_parent_node').dom.value = this.parent_node ;
        }
    });
    //=============================
    // 現在のページオブジェクトのdialogsメンバーに設定
    //=============================
    App.Page.thispage.dialogs.FileDlgFolderEdit = new App.FileDlgFolderEdit();
}